package com.lwl.Algorithmic_data_structure.class03数据结构;

import com.lwl.Utils.LLinkNode;

public class Code01ReverseLink {

    public static void main(String[] args) {

        LLinkNode node1 = new LLinkNode(1);
//        LLinkNode node2 = new LLinkNode(2, node1);
//        LLinkNode node3 = new LLinkNode(3, node2);
//        LLinkNode node4 = new LLinkNode(4, node3);
//        LLinkNode node5 = new LLinkNode(5, node4);
//        LLinkNode node6 = new LLinkNode(6, node5);
//        LLinkNode node7 = new LLinkNode(7, node6);
//        LLinkNode node8 = new LLinkNode(8, node7);
        node1.printLinkList();
        LLinkNode res = reverseLinkList(node1);
        res.printLinkList();
    }

    private static LLinkNode reverseLinkList(LLinkNode head) {
        LLinkNode pre = null;
        LLinkNode next = head;
        while (head != null) {
            // head.next指针 要改变啦，赶紧使用next记录下来
            next = head.next;
            head.next = pre;
            // head指针 要改变啦，赶紧使用pre记录下来
            pre = head;
            head = next;
        }
        return pre;
    }

}
